﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using pwblog.BusinessObject;
using pwblog.Entities;
using pwblog.Common;

namespace pwblog.Web
{
    public partial class forgotpassword : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            AccountBo accountBo = new AccountBo();
            if (hiddenName.Value == "account")
            {
                string username = hiddenValue.Value.Trim();
                Account account = accountBo.GetAccountByUserID(username);
                if (account != null)
                {
                    ActiveCodeBo activeCodeBo = new ActiveCodeBo();
                    string code = activeCodeBo.InsertActiveCode(username);
                    if (!string.IsNullOrEmpty(code))
                    {
                        MailAssistant.SetupSender("ducnh3@gmail.com", "Duc123456");

                        string link = "~/Web/resetpassword.aspx?id=" + username + "&c=" + code;
                        string fulllink = ConvertRelativeUrlToAbsoluteUrl(link);
                        string[] to = new string[] { account.Address };
                        string subject = "IT News Blog hỗ trợ quên mật khẩu || IT News Blog ho tro quen mat khau";

                        StringBuilder sb = new StringBuilder();
                        sb.Append("IT News Blog xin chào bạn ");
                        sb.Append(account.UserName);
                        sb.Append(",<br/>");
                        sb.Append("Bạn nhận được email này vì có người đã yêu cầu chúng tôi hỗ trợ reset password cho account này. ");
                        sb.Append("Thông tin về tài khoản của bạn: <br/>");
                        sb.Append("    Tên tài khoản: ");
                        sb.Append(account.UserName);
                        sb.Append("<br/>");
                        sb.Append("Nếu thực là bạn yêu cầu, vui lòng click vào đường link dưới đây và làm theo hướng dẫn để reset password cho tài khoản của bạn.<br/>");
                        sb.Append("Nếu bạn không chắc về vấn đề này vui lòng bỏ quay email này và không click vào link dưới. <br/>");
                        sb.Append("<a href='" + fulllink + "' target=_blank>" + fulllink + "</a> <br/>");
                        sb.Append("=====================tieng viet khong dau=====================<br/>");
                        sb.Append("IT News Blog xin chao ban ");
                        sb.Append(account.UserName);
                        sb.Append(",<br/>");
                        sb.Append("Ban nhan duoc email nay vi co nguoi yeu cau chung toi ho tro reset password cho account nay. ");
                        sb.Append("Thong tin ve tai khoan cua ban:<br/>");
                        sb.Append("    Ten tai khoan: ");
                        sb.Append(account.UserName);
                        sb.Append("<br/>");
                        sb.Append("Neu thuc la ban yeu cau, vui long click vao duong link duoi day va lam theo huong dan de reset password cho tai khoan cua ban.<br/>");
                        sb.Append("Neu ban khong chac ve van de nay vui long bo qua email nay va khong click vao link duoi. <br/>");
                        sb.Append("<a href='" + fulllink + "' target=_blank>" + fulllink + "</a> <br/>");
                        sb.Append("<br/>IT News Blog chuc ban co hoc tap duoc nhieu dieu thu vi tai IT News Blog.");

                        MailAssistant.SendMail(to, subject, sb.ToString(), null);

                        Response.Redirect("sendactivelink.aspx?r=success&id=" + username);
                    }
                }
                else
                {
                    Response.Redirect("sendactivelink.aspx?r=fail&type=id&val=" + username);
                }
            }
            else if (hiddenName.Value == "email")
            {
                string email = hiddenValue.Value.Trim();
                Account account = accountBo.GetAccountByEmail(email);
                if (account != null)
                {
                    ActiveCodeBo activeCodeBo = new ActiveCodeBo();
                    string code = activeCodeBo.InsertActiveCode(account.UserName);
                    if (!string.IsNullOrEmpty(code))
                    {
                        MailAssistant.SetupSender("ducnh3@gmail.com", "Duc123456");

                        string link = "~/Web/resetpassword.aspx?id=" + account.UserName + "&c=" + code;
                        string fulllink = ConvertRelativeUrlToAbsoluteUrl(link);
                        string[] to = new string[] { account.Address };
                        string subject = "IT News Blog hỗ trợ quên mật khẩu || IT News Blog ho tro quen mat khau";

                        StringBuilder sb = new StringBuilder();
                        sb.Append("IT News Blog xin chào bạn ");
                        sb.Append(account.UserName);
                        sb.Append(",<br/>");
                        sb.Append("Bạn nhận được email này vì có người đã yêu cầu chúng tôi hỗ trợ reset password cho account này. ");
                        sb.Append("Thông tin về tài khoản của bạn: <br/>");
                        sb.Append("    Tên tài khoản: ");
                        sb.Append(account.UserName);
                        sb.Append("<br/>");
                        sb.Append("Nếu thực là bạn yêu cầu, vui lòng click vào đường link dưới đây và làm theo hướng dẫn để reset password cho tài khoản của bạn.<br/>");
                        sb.Append("Nếu bạn không chắc về vấn đề này vui lòng bỏ qua email này và không click vào link dưới. <br/>");
                        sb.Append("<a href='" + fulllink + "' target=_blank>" + fulllink + "</a> <br/>");
                        sb.Append("=====================tieng viet khong dau=====================<br/>");
                        sb.Append("IT News Blog xin chao ban ");
                        sb.Append(account.UserName);
                        sb.Append(",<br/>");
                        sb.Append("Ban nhan duoc email nay vi co nguoi yeu cau chung toi ho tro reset password cho account nay. ");
                        sb.Append("Thong tin ve tai khoan cua ban:<br/>");
                        sb.Append("    Ten tai khoan: ");
                        sb.Append(account.UserName);
                        sb.Append("<br/>");
                        sb.Append("Neu thuc la ban yeu cau, vui long click vao duong link duoi day va lam theo huong dan de reset password cho tai khoan cua ban.<br/>");
                        sb.Append("Neu ban khong chac ve van de nay vui long bo qua email nay va khong click vao link duoi. <br/>");
                        sb.Append("<a href='" + fulllink + "' target=_blank>" + fulllink + "</a> <br/>");
                        sb.Append("<br/>IT News Blog chuc ban co hoc tap duoc nhieu dieu thu vi tai IT News Blog.");

                        MailAssistant.SendMail(to, subject, sb.ToString(), null);

                        Response.Redirect("sendactivelink.aspx?r=success&email=" + email);
                    }
                }
                else
                {
                    Response.Redirect("sendactivelink.aspx?r=fail&type=email&val=" + email);
                }
            }

        }

        public string ConvertRelativeUrlToAbsoluteUrl(string relativeUrl)
        {

            if (Request.IsSecureConnection)

                return string.Format("https://{0}:{1}{2}", Request.Url.Host, Request.Url.Port, Page.ResolveUrl(relativeUrl));

            else

                return string.Format("http://{0}:{1}{2}", Request.Url.Host, Request.Url.Port, Page.ResolveUrl(relativeUrl));

        }
    }
}